//Source file: D:\\aaa\\com\\ce\\pms\\renovation\\model\\AbstractViolationDO.java

package com.ce.pms.renovation.model;

import java.util.Date;
import java.math.BigDecimal;

import javax.persistence.AttributeOverride;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.ce.pms.common.model.SysInfo;
import com.sitechasia.webx.core.model.IDomainObject;

/**
 * 实体名称:抽象的违规记录 关联数据表:RM_VIOLATION
 *
 * @author yandawei
 * @CreateDate:2008-12-17
 */
@Entity
@Table(name = "RM_VIOLATION")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "VIOLATION_TYPE", discriminatorType = DiscriminatorType.STRING)
public abstract class AbstractViolationDO implements IDomainObject {

	/**
	 * 主键
	 */
	@Id
	@GeneratedValue
	@Column(name = "VIOLATION_ID")
	private Long keyword;

	/**
	 * 装修许可证
	 */
	@ManyToOne
	@JoinColumn(name = "RENOVATE_LICENCE_ID")
	private RenovateLicenceDO renovateLicence;

	/**
	 * 联系人电话
	 */
	@Column(name = "LINK_MAN_PHONE", length = 30)
	private String linkManPhone;

	/**
	 * 现场负责人电话
	 */
	@Column(name = "BURDEN_MAN_PHONE", length = 30)
	private String burdenManPhone;

	/**
	 * 检查人
	 */
	@Column(name = "CHECK_MAN", nullable = false, length = 10)
	private String checkMan;

	/**
	 * 检查日期
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "CHECK_DATE", nullable = false)
	private Date checkDate;

	/**
	 * 违规日期
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "VIOLATE_DATE", nullable = false)
	private Date violateDate;

	/**
	 * 描述
	 */
	@Column(name = "DESCRIPTION", nullable = false, length = 100)
	private String description;

	/**
	 * 是否立即停止上述行为1是, 0否
	 */
	@Column(name = "STOP_BEHAVIOR_YN", length = 1)
	private String stopBehaviorYn;

	/**
	 * 是否立即停止全部装修工程 1是, 0否
	 */
	@Column(name = "STOP_RENOVATE_YN", length = 1)
	private String stopRenovateYn;

	/**
	 * 是否限期整改 1是, 0否
	 */
	@Column(name = "TERM_REFORM_YN", length = 1)
	private String termReformYn;

	/**
	 * 恢复日期
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "REFORM_DATE")
	private Date reformDate;

	/**
	 * 是否罚款 1是, 0否
	 */
	@Column(name = "AMERCE_YN", length = 10)
	private String amerceYn;

	/**
	 * 业主罚款
	 */
	@Column(name = "AMERCE_CLIENT", precision = 18, scale = 2)
	private BigDecimal amerceClient = new BigDecimal(0.00);

	/**
	 * 装修商罚款
	 */
	@Column(name = "AMERCE_COMPANY", precision = 18, scale = 2)
	private BigDecimal amerceCompany = new BigDecimal(0.00);

	/**
	 * 是否没收 1是, 0否
	 */
	@Column(name = "SEIZURE_YN", length = 1)
	private String seizureYn;

	/**
	 * 没收内容
	 */
	@Column(name = "SEIZURE_RES", length = 50)
	private String seizureRes;

	/**
	 * 是否其他 1是, 0否
	 */
	@Column(name = "OTHER_YN", length = 1)
	private String otherYn;

	/**
	 * 其它方式内容
	 */
	@Column(name = "OTHER_REMARK", length = 50)
	private String otherRemark;

	/**
	 * 系统信息
	 */
	@Embedded
	@AttributeOverride(name = "sysDate", column = @Column(name = "SYS_DATE"))
	private SysInfo sysInfo;

	/**
	 * @roseuid 49473A9E001F
	 */
	public AbstractViolationDO() {

	}

	public AbstractViolationDO(Long keyword) {
		super();
		this.keyword = keyword;
	}

	public BigDecimal getAmerceClient() {
		return amerceClient;
	}

	public void setAmerceClient(BigDecimal amerceClient) {
		this.amerceClient = amerceClient;
	}

	public BigDecimal getAmerceCompany() {
		return amerceCompany;
	}

	public void setAmerceCompany(BigDecimal amerceCompany) {
		this.amerceCompany = amerceCompany;
	}

	public String getAmerceYn() {
		return amerceYn;
	}

	public void setAmerceYn(String amerceYn) {
		this.amerceYn = amerceYn;
	}

	public String getBurdenManPhone() {
		return burdenManPhone;
	}

	public void setBurdenManPhone(String burdenManPhone) {
		this.burdenManPhone = burdenManPhone;
	}

	public Date getCheckDate() {
		return checkDate;
	}

	public void setCheckDate(Date checkDate) {
		this.checkDate = checkDate;
	}

	public String getCheckMan() {
		return checkMan;
	}

	public void setCheckMan(String checkMan) {
		this.checkMan = checkMan;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public Long getKeyword() {
		return keyword;
	}

	public void setKeyword(Long keyword) {
		this.keyword = keyword;
	}

	public String getLinkManPhone() {
		return linkManPhone;
	}

	public void setLinkManPhone(String linkManPhone) {
		this.linkManPhone = linkManPhone;
	}

	public String getOtherRemark() {
		return otherRemark;
	}

	public void setOtherRemark(String otherRemark) {
		this.otherRemark = otherRemark;
	}

	public String getOtherYn() {
		return otherYn;
	}

	public void setOtherYn(String otherYn) {
		this.otherYn = otherYn;
	}

	public Date getReformDate() {
		return reformDate;
	}

	public void setReformDate(Date reformDate) {
		this.reformDate = reformDate;
	}

	public RenovateLicenceDO getRenovateLicence() {
		return renovateLicence;
	}

	public void setRenovateLicence(RenovateLicenceDO renovateLicence) {
		this.renovateLicence = renovateLicence;
	}

	public String getSeizureRes() {
		return seizureRes;
	}

	public void setSeizureRes(String seizureRes) {
		this.seizureRes = seizureRes;
	}

	public String getSeizureYn() {
		return seizureYn;
	}

	public void setSeizureYn(String seizureYn) {
		this.seizureYn = seizureYn;
	}

	public String getStopBehaviorYn() {
		return stopBehaviorYn;
	}

	public void setStopBehaviorYn(String stopBehaviorYn) {
		this.stopBehaviorYn = stopBehaviorYn;
	}

	public String getStopRenovateYn() {
		return stopRenovateYn;
	}

	public void setStopRenovateYn(String stopRenovateYn) {
		this.stopRenovateYn = stopRenovateYn;
	}

	public String getTermReformYn() {
		return termReformYn;
	}

	public void setTermReformYn(String termReformYn) {
		this.termReformYn = termReformYn;
	}

	public Date getViolateDate() {
		return violateDate;
	}

	public void setViolateDate(Date violateDate) {
		this.violateDate = violateDate;
	}

	public SysInfo getSysInfo() {
		return sysInfo;
	}

	public void setSysInfo(SysInfo sysInfo) {
		this.sysInfo = sysInfo;
	}

}
